<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>若川的2020年度总结，水波不兴 | 若川的博客</title>
    <meta name="generator" content="VuePress 1.8.2">
    <link rel="icon" href="/favicon.ico">
    <link rel="mainfest" href="/mainfest.json">
    <meta name="description" content="若川，微信搜索「若川视野」关注我，长期交流学习。写有《学习源码整体架构系列》。包含jquery源码、underscore源码、lodash源码、sentry源码、vuex源码、axios源码、koa源码、redux源码。前端路上，PPT爱好者，所知甚少，唯善学。">
    
    <link rel="preload" href="/assets/css/0.styles.0ad39d54.css" as="style"><link rel="preload" href="/assets/js/app.9fbcafa6.js" as="script"><link rel="preload" href="/assets/js/2.33539d56.js" as="script"><link rel="preload" href="/assets/js/5.aace9ee0.js" as="script"><link rel="preload" href="/assets/js/23.72249401.js" as="script"><link rel="prefetch" href="/assets/js/10.17a947d6.js"><link rel="prefetch" href="/assets/js/11.599e7eee.js"><link rel="prefetch" href="/assets/js/12.574e6f26.js"><link rel="prefetch" href="/assets/js/13.3a93edbc.js"><link rel="prefetch" href="/assets/js/14.c9f20b6b.js"><link rel="prefetch" href="/assets/js/15.c6b03e37.js"><link rel="prefetch" href="/assets/js/16.c445ccb9.js"><link rel="prefetch" href="/assets/js/17.60b94fab.js"><link rel="prefetch" href="/assets/js/18.86de3f95.js"><link rel="prefetch" href="/assets/js/19.6fedd448.js"><link rel="prefetch" href="/assets/js/20.5b11fd5b.js"><link rel="prefetch" href="/assets/js/21.e5faf0b7.js"><link rel="prefetch" href="/assets/js/22.23137eae.js"><link rel="prefetch" href="/assets/js/24.20d474b3.js"><link rel="prefetch" href="/assets/js/25.6dc03c07.js"><link rel="prefetch" href="/assets/js/26.fcf5232b.js"><link rel="prefetch" href="/assets/js/27.6ee352c4.js"><link rel="prefetch" href="/assets/js/28.7534ba1e.js"><link rel="prefetch" href="/assets/js/29.352ed61c.js"><link rel="prefetch" href="/assets/js/3.2f315ac7.js"><link rel="prefetch" href="/assets/js/30.e5dbb079.js"><link rel="prefetch" href="/assets/js/31.b8562982.js"><link rel="prefetch" href="/assets/js/32.f3c8f832.js"><link rel="prefetch" href="/assets/js/33.5ca5188e.js"><link rel="prefetch" href="/assets/js/34.624e3116.js"><link rel="prefetch" href="/assets/js/35.35a86a7c.js"><link rel="prefetch" href="/assets/js/36.21f88fe5.js"><link rel="prefetch" href="/assets/js/37.f5b01c2c.js"><link rel="prefetch" href="/assets/js/38.79ed2093.js"><link rel="prefetch" href="/assets/js/39.687f8425.js"><link rel="prefetch" href="/assets/js/4.9af06e45.js"><link rel="prefetch" href="/assets/js/40.deaa2213.js"><link rel="prefetch" href="/assets/js/41.ede9f8e5.js"><link rel="prefetch" href="/assets/js/42.c48ff846.js"><link rel="prefetch" href="/assets/js/43.012e8b81.js"><link rel="prefetch" href="/assets/js/44.d7040c40.js"><link rel="prefetch" href="/assets/js/45.2805a83b.js"><link rel="prefetch" href="/assets/js/46.95a37284.js"><link rel="prefetch" href="/assets/js/47.d1c213db.js"><link rel="prefetch" href="/assets/js/48.00be6d02.js"><link rel="prefetch" href="/assets/js/49.3d722bd1.js"><link rel="prefetch" href="/assets/js/50.d9fa2cde.js"><link rel="prefetch" href="/assets/js/51.e0aaa97a.js"><link rel="prefetch" href="/assets/js/52.a700a7a9.js"><link rel="prefetch" href="/assets/js/53.dbb93ca1.js"><link rel="prefetch" href="/assets/js/6.e0576ee1.js"><link rel="prefetch" href="/assets/js/7.4a4a967d.js"><link rel="prefetch" href="/assets/js/8.b7698a4a.js"><link rel="prefetch" href="/assets/js/9.6930a420.js">
    <link rel="stylesheet" href="/assets/css/0.styles.0ad39d54.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">若川的博客</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://image-static.segmentfault.com/355/182/3551821948-5df888aa1dc88_articlex" target="_blank" rel="noopener noreferrer" class="nav-link external">
  公众号：若川视野
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="/" class="nav-link">
  目录
</a></div><div class="nav-item"><a href="/about/" class="nav-link">
  关于我
</a></div><div class="nav-item"><a href="/poetry/2012-2016/" class="nav-link">
  曾经写的&quot;诗词&quot;
</a></div><div class="nav-item"><a href="https://github.com/lxchuan12/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
  Github
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://juejin.im/user/1415826704971918/posts" target="_blank" rel="noopener noreferrer" class="nav-link external">
  掘金
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://www.zhihu.com/people/lxchuan12/activities" target="_blank" rel="noopener noreferrer" class="nav-link external">
  知乎
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://www.yuque.com/lxchuan12/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
  语雀
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="其他" class="dropdown-title"><span class="title">其他</span> <span class="arrow down"></span></button> <button type="button" aria-label="其他" class="mobile-dropdown-title"><span class="title">其他</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://segmentfault.com/u/lxchuan12/articles" target="_blank" rel="noopener noreferrer" class="nav-link external">
  segmentFault
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="http://weibo.com/lxchuan12" target="_blank" rel="noopener noreferrer" class="nav-link external">
  微博
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="http://www.jianshu.com/users/83129d433d72/latest_articles" target="_blank" rel="noopener noreferrer" class="nav-link external">
  简书
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="友链" class="dropdown-title"><span class="title">友链</span> <span class="arrow down"></span></button> <button type="button" aria-label="友链" class="mobile-dropdown-title"><span class="title">友链</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://shanyue.tech" target="_blank" rel="noopener noreferrer" class="nav-link external">
  山月
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="http://lucifer.ren" target="_blank" rel="noopener noreferrer" class="nav-link external">
  lucifer
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://hungryturbo.com" target="_blank" rel="noopener noreferrer" class="nav-link external">
  童欧巴
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://www.scarsu.com/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  scarsu
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://mtc.nofwl.com/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  lencx的博客
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://coder.itclan.cn/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  itclanCoder
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://ruizhengyun.cn" target="_blank" rel="noopener noreferrer" class="nav-link external">
  编程之上
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="https://image-static.segmentfault.com/355/182/3551821948-5df888aa1dc88_articlex" target="_blank" rel="noopener noreferrer" class="nav-link external">
  公众号：若川视野
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="/" class="nav-link">
  目录
</a></div><div class="nav-item"><a href="/about/" class="nav-link">
  关于我
</a></div><div class="nav-item"><a href="/poetry/2012-2016/" class="nav-link">
  曾经写的&quot;诗词&quot;
</a></div><div class="nav-item"><a href="https://github.com/lxchuan12/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
  Github
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://juejin.im/user/1415826704971918/posts" target="_blank" rel="noopener noreferrer" class="nav-link external">
  掘金
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://www.zhihu.com/people/lxchuan12/activities" target="_blank" rel="noopener noreferrer" class="nav-link external">
  知乎
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://www.yuque.com/lxchuan12/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
  语雀
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="其他" class="dropdown-title"><span class="title">其他</span> <span class="arrow down"></span></button> <button type="button" aria-label="其他" class="mobile-dropdown-title"><span class="title">其他</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://segmentfault.com/u/lxchuan12/articles" target="_blank" rel="noopener noreferrer" class="nav-link external">
  segmentFault
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="http://weibo.com/lxchuan12" target="_blank" rel="noopener noreferrer" class="nav-link external">
  微博
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="http://www.jianshu.com/users/83129d433d72/latest_articles" target="_blank" rel="noopener noreferrer" class="nav-link external">
  简书
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="友链" class="dropdown-title"><span class="title">友链</span> <span class="arrow down"></span></button> <button type="button" aria-label="友链" class="mobile-dropdown-title"><span class="title">友链</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://shanyue.tech" target="_blank" rel="noopener noreferrer" class="nav-link external">
  山月
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="http://lucifer.ren" target="_blank" rel="noopener noreferrer" class="nav-link external">
  lucifer
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://hungryturbo.com" target="_blank" rel="noopener noreferrer" class="nav-link external">
  童欧巴
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://www.scarsu.com/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  scarsu
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://mtc.nofwl.com/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  lencx的博客
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://coder.itclan.cn/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  itclanCoder
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://ruizhengyun.cn" target="_blank" rel="noopener noreferrer" class="nav-link external">
  编程之上
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <!----></nav>  <ul class="sidebar-links"><li><a href="/" aria-current="page" class="sidebar-link">目录</a></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>学习源码系列</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>面试官问系列</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>历史文章</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>杂文</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>曾经写的&quot;诗词&quot;</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>年度总结</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/annual-summary/2020/" aria-current="page" class="active sidebar-link">若川的2020年度总结，水波不兴</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/annual-summary/2020/#前言" class="sidebar-link">前言</a></li><li class="sidebar-sub-header"><a href="/annual-summary/2020/#身体-·-健康" class="sidebar-link">身体 · 健康</a></li><li class="sidebar-sub-header"><a href="/annual-summary/2020/#财务-·-理财" class="sidebar-link">财务 · 理财</a></li><li class="sidebar-sub-header"><a href="/annual-summary/2020/#人际-·-社群" class="sidebar-link">人际 · 社群</a></li><li class="sidebar-sub-header"><a href="/annual-summary/2020/#工作-·-事业" class="sidebar-link">工作 · 事业</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/annual-summary/2020/#技术自媒体-慢慢打造个人品牌" class="sidebar-link">技术自媒体，慢慢打造个人品牌</a></li></ul></li><li class="sidebar-sub-header"><a href="/annual-summary/2020/#家庭-·-生活" class="sidebar-link">家庭 · 生活</a></li><li class="sidebar-sub-header"><a href="/annual-summary/2020/#学习-·-成长" class="sidebar-link">学习 · 成长</a></li><li class="sidebar-sub-header"><a href="/annual-summary/2020/#体验-·-突破" class="sidebar-link">体验 · 突破</a></li><li class="sidebar-sub-header"><a href="/annual-summary/2020/#休闲-·-放松" class="sidebar-link">休闲 · 放松</a></li><li class="sidebar-sub-header"><a href="/annual-summary/2020/#总结" class="sidebar-link">总结</a></li></ul></li><li><a href="/annual-summary/2019/" class="sidebar-link">若川的2019年度总结，波澜不惊</a></li><li><a href="/annual-summary/2018/" class="sidebar-link">2018年度总结，平淡无奇</a></li><li><a href="/annual-summary/2017/" class="sidebar-link">2017年度总结，一如既往</a></li><li><a href="/annual-summary/2016/" class="sidebar-link">2016年度总结，毕业，工作</a></li></ul></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>关于</span> <span class="arrow right"></span></p> <!----></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="若川的2020年度总结-水波不兴"><a href="#若川的2020年度总结-水波不兴" class="header-anchor">#</a> 若川的2020年度总结，水波不兴</h1> <h2 id="前言"><a href="#前言" class="header-anchor">#</a> 前言</h2> <blockquote><p>你好，我是<a href="https://lxchuan12.gitee.io" target="_blank" rel="noopener noreferrer">若川<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>，微信搜索<a href="https://mp.weixin.qq.com/s/c3hFML3XN9KCUetDOZd-DQ" target="_blank" rel="noopener noreferrer">「若川视野」<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>关注我，专注前端技术分享。欢迎加我微信<code>ruochuan12</code>，加群交流学习。</p></blockquote> <p>从<code>2014年</code>开始，每一年都会写年度总结，坚持了6个年头。<br> <br><a href="http://user.qzone.qq.com/1019963719/blog/1422275707" target="_blank" rel="noopener noreferrer">回顾2014，约定2015<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>（QQ空间日志）<br><a href="http://user.qzone.qq.com/1019963719/blog/1451822274" target="_blank" rel="noopener noreferrer">2015年总结，淡化旧标签，无惧未来<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>（QQ空间日志）<br><a href="https://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650747244&amp;idx=1&amp;sn=a4cea36b8f9fc2caae4df7a63f302829&amp;chksm=886632e0bf11bbf6cce245c3b6cc6a8544b9f78cf1ba12448a14fe8739dda6e871391759c0a4&amp;scene=178&amp;cur_album_id=1668518390266724360#rd" target="_blank" rel="noopener noreferrer">2016年度总结，毕业工作<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br><a href="https://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650747311&amp;idx=1&amp;sn=3fb8aa2c7338185a7e4cc85dd5913f75&amp;chksm=88663223bf11bb3507424135dafd4a93bf0812c96b01d4ab3e608568f62d99ac065aa24fe70a&amp;scene=178&amp;cur_album_id=1668518390266724360#rd" target="_blank" rel="noopener noreferrer">2017年度总结，一如既往<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br><a href="https://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650747386&amp;idx=1&amp;sn=f219582bb2460790c85857e80d036bc8&amp;chksm=88663276bf11bb60fc5244de4456defae50d740ebd7f885b8525e790657a4190c74e255efdba&amp;scene=178&amp;cur_album_id=1668518390266724360#rd" target="_blank" rel="noopener noreferrer">2018年度总结，平淡无奇<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br><a href="https://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650744661&amp;idx=1&amp;sn=44de0fed0597c97eac3e19ecc3ab20c5&amp;chksm=886624d9bf11adcfed52ca4b43d7f83500d3f30697f08c1b3a8ed63e3ce22325848b624bb502&amp;scene=178&amp;cur_album_id=1668518390266724360#rd" target="_blank" rel="noopener noreferrer">2019年度总结，波澜不惊<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br>2020年度总结，水波不兴（本文）<br> <br>如今第7年了，最近总是想着2020年度总结的点点滴滴，思考这一年要写点什么不一样的，可是思前想后觉得这一年好像也没有什么不一样啊。2019年度总结文章中就写了2020年度总结的标题可能取名为「<code>水波不兴</code>」。内心深处就感觉水波不兴不错。可能是内心深处有个湖，湖面平静，有时会激起水花和波浪，但终究会恢复平静，也就是说平平淡淡是常态。年度总结往年基本是元旦3天假期就动笔了。<br> <br>说起跨年和元旦，回忆起这几年的最后一天。<br>把时间拨回到<code>2016年12月31日</code>，那时同行四人去了良渚博物馆。<br>把时间拨回到<code>2017年12月31日</code>，那时几个在杭州的大学同学一起聚餐、K歌。<br>把时间拨回到<code>2018年12月31日</code>，几个同事一起去西湖边跨年，最后同事开车把我们送回。之后听到朋友说他们去西湖边跨年，人太多打不到车，最后凌晨四五点才回去，说再也不去西湖边跨年了。<br>时间再拨回到<code>2019年12月31日</code>，有了以往的“经验”，跨年的气息也没有那么浓厚，就自己在住处跨过了一年。第二天元旦，朋友开车带我去塘栖古镇逛了逛，开启了2020年。<br></p> <p><img src="/assets/img/xiyang.6f0c260f.jpg" alt="杭州塘栖古镇夕阳西下，开启2020年"></p> <p>记得远在2019年12月份，那时我在微博上看到武汉发生不明肺炎。2020年，1月20日回家过春节时，看到各种群里有讨论要口罩，当时没想那么多也来不及买口罩，于是没有戴口罩回到了家。<strong>谁也不曾想，疫情会影响全世界</strong>。
而<code>2020年12月31日</code>，也是在住处跨过了一年。不平凡的一年过去了。<br></p> <p><strong>回想这几年，感叹时光飞逝，每一年都过得普普通通</strong>。远不及朋友圈各种大佬的一年。</p> <p>个人是比较建议读者朋友们都写年度总结的，不一定要发布出来，给自己看也不错，或者给未来的自己看兴许也是一种回顾。非常欣慰有读者朋友特意到我的博客看有没有写年度总结，也有读者朋友在公众号留言说看完了我往年的年度总结，想看我的2020年的。可如今写出来了，怕是要对不住他们<code>如此期待</code>了。<br> <br><code>2016年</code>学习了一门年度计划的课程，提到人生的8个方面，分别是<strong>身体健康、财务理财、人际社群、工作事业、家庭生活、学习成长、体验突破、休闲放松</strong>。觉得这8方面还是挺合理的，于是从<a href="https://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650747244&amp;idx=1&amp;sn=a4cea36b8f9fc2caae4df7a63f302829&amp;chksm=886632e0bf11bbf6cce245c3b6cc6a8544b9f78cf1ba12448a14fe8739dda6e871391759c0a4&amp;scene=178&amp;cur_album_id=1668518390266724360#rd" target="_blank" rel="noopener noreferrer">2016年度总结<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>开始，都是按这8个方面来写年度总结。另外作为读者朋友的你也可以搜索微信小程序：滴答目标九宫格，看到的就是这八方面。<br></p> <p><img src="/assets/img/dida.6e9e20d2.jpg" alt="滴答目标九宫格图"></p> <p>，也可以看<a href="http://www.gtdlife.com/2017/4754/dida-mubiao-jiugongge/" target="_blank" rel="noopener noreferrer">邹小强老师的这篇文章《小工具：随时都可以看到漂亮的目标板》<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <h2 id="身体-·-健康"><a href="#身体-·-健康" class="header-anchor">#</a> 身体 · 健康</h2> <p>这一年，基本是走路上下班，姑且算是一种锻炼吧。<br>这一年，视力又下降了。在2018年度总结中写过的一句话引用过来同样适用。正印证了那句话：<strong>真的要少玩手机电脑了，眼睛越来越不好了，打开支付宝都看不到钱了。</strong><br>这一年，没有难以入睡的记录。而2019年记录有12次辗转反侧，难以入睡。<br>身体健康重要性大家都知道，但往往是大部分作为年轻人的我们存在不良作息习惯和饮食习惯等，长此以往可能会导致身体一些问题。而身体健康、财务理财、人际社群可以看成是人生基石三要素。</p> <h2 id="财务-·-理财"><a href="#财务-·-理财" class="header-anchor">#</a> 财务 · 理财</h2> <p>年度总结里一直说理财，实际上很少理财。看到朋友圈同龄人炒股副业一年都赚了30w+，实名羡慕啊。不过仔细一想，别人肯定也是积累了很久和付出了很大的努力。看似云淡风轻，但事实上背后的过程我们没有看到。看到别人年度总结中的一句话：投资不追求暴利，年化10%~20%即可，相信<strong>复利</strong>的力量，关键在于坚持，10年内投资只是副业，10年后希望可以靠投资实现财务自由。</p> <h2 id="人际-·-社群"><a href="#人际-·-社群" class="header-anchor">#</a> 人际 · 社群</h2> <p>这一年，线下见过面的人屈指可数，总共见过两个大学校友，两个前端小伙伴（我微信群里的）。工作后除了公司同事，其他朋友线下见面，基本都是以一年为单位，一年到头线下见面的人真的很少。真正比较长期聊过天的人数也是很少。正所谓：<code>越长大，越孤独</code>。</p> <h2 id="工作-·-事业"><a href="#工作-·-事业" class="header-anchor">#</a> 工作 · 事业</h2> <p>我的年度总结很少写公司工作方面。本职工作就是某不知名小公司的一名小前端开发工程师，负责小程序和网站开发等。<br>这一年，在工作方面，由于公司变动，我担任了前端开发的面试官，负责给公司招人。记得2017年第一次面试别人时，自己都是很紧张的。当初刚毕业时求职面试，如今身份转换，时间真快。<br><code>wakatime</code>2020年使用<code>Vscode</code>编码时间统计，总共1572小时，和2019年相比基本持平。平均每天5个多小时在使用编辑器<code>VSCode</code>，其中2月13日最多，竟然11小时16分钟，记得这一天在家远程办公工作内容很多。花在自己博客的时间为45小时，相比2019年107小时有所下降。这里统计的是实际上聚焦使用VSCode的时间，应该还算是多的。在此放下统计地址<a href="https://wakatime.com/a-look-back-at-2020" target="_blank" rel="noopener noreferrer">https://wakatime.com/a-look-back-at-2020<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>，方便不知道地址的读者朋友访问使用wakatime。<br></p> <p><img src="/assets/img/wakatime.736cb455.png" alt="若川的wakatime 2020统计"></p> <p>按照以往的惯例，顺带贴下公司代码提交记录和个人github代码提交记录。</p> <p><img src="/assets/img/gitlab.b449f8a9.png" alt="公司gitlab的代码提交记录"></p> <p><img src="/assets/img/github.ad6a5411.png" alt="github的代码提交记录"></p> <h3 id="技术自媒体-慢慢打造个人品牌"><a href="#技术自媒体-慢慢打造个人品牌" class="header-anchor">#</a> 技术自媒体，慢慢打造个人品牌</h3> <p><strong>微信：再小的个体，也有自己的品牌</strong>。我从<a href="https://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650747244&amp;idx=1&amp;sn=a4cea36b8f9fc2caae4df7a63f302829&amp;chksm=886632e0bf11bbf6cce245c3b6cc6a8544b9f78cf1ba12448a14fe8739dda6e871391759c0a4&amp;scene=178&amp;cur_album_id=1668518390266724360#rd" target="_blank" rel="noopener noreferrer">2016年度总结<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>起，就一直写了「慢慢打造个人品牌」，真正有所收益时是2020年。</p> <h4 id="公众号-8w-阅读"><a href="#公众号-8w-阅读" class="header-anchor">#</a> 公众号 8w+ 阅读</h4> <p>这一年，比较佛系的运营了公众号「<strong>若川视野</strong>」，有了工作之外的一些收益。清博大数据和新榜年度报告中都显示公众号全年累计8w+阅读，相比2019年增加2183.73%，虽然可能不是那么准确，但应该也相差不大。</p> <p><img src="/assets/img/qingbo.8f148848.jpg" alt="清博大数据统计"></p> <p>年初1月11日时，接了公众号第一次广告300元，但后续基本没有持续更新，比较佛系，接的广告也比较少。<strong>运营公众号其实是非常耗时耗力的</strong>。即使是转载文章，每天基本都要花上一小时左右选文章发文章。如果是自己写原创文章，基本每篇文章都需要10小时左右，甚至更多。作为一名互联网打工人，时间可是稀缺资源啊。</p> <p>真正<strong>醒悟</strong>打算不那么佛系，工作日都更新时，已经是11月份了。为什么醒悟了，当时考虑有两点：<strong>1、公众号对于内容创作者非常有利，同时变现能力非常强，2、相信复利的力量探寻更多可能</strong>。在微信公众号平台上，声明过原创的文章，别人在公众号发布必须取得授权才能转载发布，而其他平台随意转载抄袭现象很常见。也许在N年后，运营公众号的副业收入能超过主业。虽然我的公众号粉丝数还很少，但也能接上一些广告，有了一些收益，也可以给我的读者朋友们谋些福利。比如逢年过节发些红包或者送些书籍，不知不觉在2020年，两个微信号竟然分别发出了<code>3306.30元</code>、<code>2469.30元</code>，虽然分摊后读者朋友可能没收到多少，但我发现发了这么多红包时是惊讶的，因为相比2019年我发出的红包是<code>1007.14元</code>，而且我2020年的广告收入也很少，远不及一些大佬。<strong>在此特别感谢支持我的读者朋友们，感谢合作投放过广告的广告主（主要是开课吧、拉勾教育、珠峰教育）</strong>。</p> <p>说起运营公众号可以追溯到2013年，「<strong>若川视野</strong>」前身是我开通的社团的公众号，那时微信刚推出「微信公众号」一年左右。那时微信都很少使用，运营公众号，虽然关注人数少，但公众号也少，阅读量相对高。后来就业指导课上，老师要求我们每人写份简历，我写了一份「新媒体运营」的简历，竟然被老师表扬了，被老师流传至今，发给学弟学妹们参考，学弟学妹们不认识我，可能以为我在做「新媒体运营」相关工作。谁能想到多年以后的我，依旧会走上了新媒体（公众号）运营这条路。</p> <p>有时会想是不是我早点运营起公众号，成果会比现在好呢，也许会的。但反思一下，公众号运营是要长期持续给粉丝提供价值，才能够持续长久正向循环。<strong>而长期持续提供价值，是需要作者本身有价值可以提供，需要多输入提升自己才能有价值的多输出</strong>。我同时也清楚地意识到：<strong>过早频繁的接广告无异于杀鸡取卵涸泽而渔，我需要的是多创作出优质的内容，好好运营，先做增量，稳住粉丝增长和阅读量增长</strong>。粉丝对公众号作者的内容和作者认可后，不会因为公众号接些广告而取消关注，毕竟粉丝因公众号内容受益，也知道做公众号不容易，也就是人们常说的<strong>利他共赢</strong>。目前阶段接多了广告，感觉有点愧对读者朋友的关注。</p> <p>这一年，清明节假期，开通了第二个微信号，截止到目前有一千多微信好友。两个微信号累计3500+好友。也有6个微信交流群，共计一千多小伙伴，相比其他公众号号主来说算很少了。相比2019年，一个微信交流群来说有所进步。现如今是<code>微信8.0</code>了，支持一万个微信好友可看朋友圈，也不知道猴年马月会加满一万个微信好友，不过期待这一天早日到来。</p> <p>运营公众号以来，也<strong>连接</strong>到了一些非常优秀的公众号号主和许多非常优秀的人。偶尔有人加我微信或者在他们的文章中提到，说我的<code>《学习源码整体架构系列》</code>对TA帮助很大，写作最开心的莫过于有很多人肯定和支持。甚至有的人说找到了<code>20K</code>的前端开发工作，为了表示感谢，一定要寄来一箱家里种的猕猴桃。而我自己觉得并没有帮到他们什么忙，不过还是很欣慰能得到大家的肯定和支持。后来想想这样不对啊，以后都寄来东西给我，而我不能提供相应的帮助，那就不好了。一直以来私聊我答疑解惑时，读者朋友发给我的红包都不收，另外也不收读者朋友寄给我的东西。</p> <h4 id="知乎-63w-阅读"><a href="#知乎-63w-阅读" class="header-anchor">#</a> 知乎 63w+ 阅读</h4> <p>这一年，知乎「<strong>若川</strong>」粉丝比去年多了2000+，现在是8377，阅读量比2019年增长了63w+，2019年时还是4w+阅读。主要有几篇回答被知乎推荐了。最高的一篇突破了31w+阅读量，如下图所示。虽然我觉得回答的也不是很好。也许是2019年写了<code>《学习源码整体架构系列》</code>的<strong>厚积薄发</strong>的表现。<br></p> <p><img src="/assets/img/zhihu.29d99e05.jpg" alt="知乎回答阅读统计"></p> <p>其中高赞的两篇回答，也同步发表在公众号，不过知乎上是最新版本。<br><a href="https://mp.weixin.qq.com/s/PY02WfJb96xXuF5OR5DDmQ" target="_blank" rel="noopener noreferrer">若川知乎问答：2年前端经验，做的项目没什么技术含量，怎么办？<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br><a href="https://mp.weixin.qq.com/s/OVH6gP0R29oRSzNhoob4SQ" target="_blank" rel="noopener noreferrer">若川知乎高赞：有哪些必看的 JS 库？<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br>顺便再放下我的<code>《学习源码整体架构系列》</code>链接，<code>koa源码</code>和<code>redux源码</code>是2020年写的。2019年下半年写了6篇，2020年只写了2篇，2021年会不会继续写下去是个谜。<br>1.<a href="http://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650744496&amp;idx=1&amp;sn=0f149e9436cb77bf9fc1bfb47aedd334&amp;chksm=8866253cbf11ac2a53b385153cd8e9a0c4018b6b566750cf0b5d61d17afa2e90b52d36db8054&amp;scene=21#wechat_redirect" target="_blank" rel="noopener noreferrer">学习 jQuery 源码整体架构，打造属于自己的 js 类库<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br>2.<a href="http://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650744505&amp;idx=1&amp;sn=26801ad6c2a5eb9cf64e7556b6478d39&amp;chksm=88662535bf11ac23eea3f76335f6777e2acbf4ee660b5616148e14ffbefc0e8520806db21056&amp;scene=21#wechat_redirect" target="_blank" rel="noopener noreferrer">学习 underscore 源码整体架构，打造属于自己的函数式编程类库<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br>3.<a href="http://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650744514&amp;idx=1&amp;sn=776336d888d06bfe72cb4d5b07a4b90c&amp;chksm=8866254ebf11ac5822fc078082603f77a4b4d9b487c9f4d7069acb12c727c46c75946fa9b0cd&amp;scene=21#wechat_redirect" target="_blank" rel="noopener noreferrer">学习 lodash 源码整体架构，打造属于自己的函数式编程类库<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br>4.<a href="http://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650744551&amp;idx=1&amp;sn=4d79c2fa97d7c737aab70055c7ec7fa3&amp;chksm=8866256bbf11ac7d9e2269f3638a705d5e5f45056d53ad2faf17b814e4c46ec6b0ba52571bde&amp;scene=21#wechat_redirect" target="_blank" rel="noopener noreferrer">学习 sentry 源码整体架构，打造属于自己的前端异常监控SDK<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br>5.<a href="http://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650744584&amp;idx=1&amp;sn=b14f8a762f132adcf0f7e3e075ee2ded&amp;chksm=88662484bf11ad922ed27d45873af838298949eea381545e82a511cabf0c6fc6876a8370c6fb&amp;scene=21#wechat_redirect" target="_blank" rel="noopener noreferrer">学习 vuex 源码整体架构，打造属于自己的状态管理库<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br>6.<a href="http://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650744604&amp;idx=1&amp;sn=51d8d865c9848fd59f7763f5fb9ce789&amp;chksm=88662490bf11ad86061ae76ff71a1177eeddab02c38d046eecd0e1ad25dc16f7591f91e9e3b2&amp;scene=21#wechat_redirect" target="_blank" rel="noopener noreferrer">学习 axios 源码整体架构，打造属于自己的请求库<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br><a href="https://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650744703&amp;idx=1&amp;sn=cfb9580241228993e4d376017234ff79&amp;chksm=886624f3bf11ade5f5e37520f6b1291417bcea95f222906548b863f4b61d20e7508eb419eb85&amp;token=192125900&amp;lang=zh_CN&amp;scene=21#wechat_redirect" target="_blank" rel="noopener noreferrer">7.学习 koa 源码的整体架构，浅析koa洋葱模型原理和co原理<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br><a href="http://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650745007&amp;idx=1&amp;sn=1fd6f3caeff6ab61b8d5f644a1dbb7df&amp;chksm=88662b23bf11a23573509a01f941d463b0c61e890b2069427c78c26296197077da359c522fe8&amp;scene=21#wechat_redirect" target="_blank" rel="noopener noreferrer">8.学习 redux 源码整体架构，深入理解 redux 及其中间件原理<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h4 id="其他"><a href="#其他" class="header-anchor">#</a> 其他</h4> <p>这一年，2017年时就开通了免费的知识星球「<strong>前端视野 · 若川</strong>」的人数也陆陆续续有增长，但更新少了，主要时间和精力放在了公众号更新上。<br>这一年，在语雀平台发布的<code>koa源码</code>文章，被选为「<strong>语雀精选</strong>」，比较难得。<br></p> <p><img src="/assets/img/yuque.ee2aae5c.png" alt="koa源码语雀精选标识"></p> <p>这一年，在掘金平台上只发了3篇文章，相比2019年多了1000+关注，阅读量却多了近10w+，现在累计14w+。</p> <h2 id="家庭-·-生活"><a href="#家庭-·-生活" class="header-anchor">#</a> 家庭 · 生活</h2> <p>这一年，在家待的时间是近年来最长。由于疫情，从1月20日放假到3月14日返杭，将近两个月的时间在家，远程办公。春节假期很长一段时间都是我妈做饭，我们不用操心。后来我妈上班去了，就是我们自己做饭了。<br>这一年，国庆和中秋一起，放假在家八天，国庆归来工作时，总感觉像是做了一场梦，梦回到家里，在家里的时光总是那么短暂。<br>这一年，给我弟买了一台新的笔记本电脑。<br>这一年，清晰的记得父亲节那天，和老爸聊天。老爸提起身在体制内堂哥的种种好处，让我羡慕不已。<br>这一年，「<code>相亲相爱一家人</code>」微信群用得相对多了起来。</p> <h2 id="学习-·-成长"><a href="#学习-·-成长" class="header-anchor">#</a> 学习 · 成长</h2> <p>这一年，没有参加一场线下技术分享大会，而2019年参加了5场线下技术分享类大会。<br>这一年，输入输出少了，只写了3篇文章。<br>这一年，<code>微信读书</code>记录只看完了4本书。微信读书非常不错，很多书都有，如果喜欢读书的你还没用过微信读书，可以尝试使用。</p> <h2 id="体验-·-突破"><a href="#体验-·-突破" class="header-anchor">#</a> 体验 · 突破</h2> <p>这一年，也没有什么特别的体验突破。</p> <h2 id="休闲-·-放松"><a href="#休闲-·-放松" class="header-anchor">#</a> 休闲 · 放松</h2> <p>这一年，很长时间都陷入迷茫焦虑中，有个词语叫<code>低欲望人群</code>，说的可能就是我这种。周末经常看电视剧或电影打发时光，麻痹自己...最长的一天（8月16日周日）看了长达7小时。看过《庆余年》、抗疫剧《在一起》、《我在未来等你》、《花木兰》等。<br> <br>这一年，没有去旅行。刚毕业时2016-2017年，那时周末有空都会在杭州一些景点或大学逛逛。如今几乎不逛了。</p> <h2 id="总结"><a href="#总结" class="header-anchor">#</a> 总结</h2> <p>站在一年的时间节点上来看全年所度过的光阴。不免又想起孔子在川上的感慨：逝者如斯夫，不舍昼夜。一年很短，列年度计划时满怀信心，写年度总结时却早已忘却当初的计划可能是多数人的状态。以前写过一篇<a href="https://mp.weixin.qq.com/s/c5-1QBTHZM9iPp5r0OXx6A" target="_blank" rel="noopener noreferrer">《如何制定有价值的目标》<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>，但真正目标管理很好的人是少数。以往年度总结中写过的一句话「<strong>人们往往容易高估自己一年能完成的事，低估自己五年内能完成的事</strong>」同样适用。</p> <p><strong>写年度总结的作用在于每年都自我审视和复盘，多年以后能回顾那一年做成了什么、没做到什么，也许未来的自己会感谢当初努力的自己</strong>。通过一定的努力积累，平静的湖面，也许会激起水花。</p> <p>我的2020年，总结起来真的是很普通。只写了3篇文章，佛系运营了公众号「若川视野」，知乎平台积累了63w+阅读量，多年累计起来，全网也算是超过百万阅读。<br>于是把公众号简介改为如下：<br></p> <blockquote><p>我是若川，《学习源码整体架构系列》作者，知乎、掘金等平台的文章累计超过百万阅读。致力于前端开发经验分享。愿景：帮助5年内前端人开阔视野不断成长，走在互联网行业前列。</p></blockquote> <p>从2018年起，年度总结文章里基本不列举年度计划...这篇文章发给我的群里小伙伴试读时，有人说写写2021年度计划呀。那就简单写下2点：<br>第一点是：自媒体好好运营，特别是公众号「若川视野」，创作出更多优质的内容，适当招聘小助理分担部分工作，尝试更多可能。<br>第二点则是：「好好工作，多赚点钱」。<br> <br>不知不觉写了5000+字，<code>感谢作为读者朋友的你看到这里</code>。<br><strong>最后农历新年即将到来，预祝各位读者朋友过一个快乐中国年。在新的一年，遇见更好的自己</strong>。</p> <blockquote><p>若川<br>
2021年2月4日</p></blockquote></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">最后更新时间:</span> <span class="time">4/4/2021, 3:37:00 AM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
      ←
      <a href="/poetry/2013/" class="prev">
        登高望远，夜幕降临
      </a></span> <span class="next"><a href="/annual-summary/2019/">
        若川的2019年度总结，波澜不惊
      </a>
      →
    </span></p></div> </main></div><div class="global-ui"><BackToTop></BackToTop><!----></div></div>
    <script src="/assets/js/app.9fbcafa6.js" defer></script><script src="/assets/js/2.33539d56.js" defer></script><script src="/assets/js/5.aace9ee0.js" defer></script><script src="/assets/js/23.72249401.js" defer></script>
  </body>
</html>
